1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for resolving a replication conflict in a multi-mastered data processing system. Still more particularly, the present invention provides a method and apparatus for resolving a replication conflict between multiple data masters in a data processing system in a manner that preserves data that is replaced during a replication conflict resolution operation.
2. Description of Related Art
In many data processing system environments, client applications must have uninterrupted read and write access to a directory data service. In such environments, it is advantageous if no single point of failure or network link outage may cause a loss of data access. To facilitate such data access, databases and other data stores are often replicated such that multiple data server replicas are accessible by clients. Replicas may be read-only or read-write. Read-write replicas are called masters. Multiple masters are frequently used to facilitate write access to the data that is not interrupted by any single point of failure. When a change to a data set, such as an entry of a database, is made on one master, the change is replicated at other masters so that the data of the masters is convergent.
However, changes to entries of the data store may occur at multiple separate machines concurrently. As the resulting data is replicated, the content of servers may diverge, creating problems. Data stores in a multi-mastered data system should provide an authoritative and consistent view of the data, but as the content of the multiple servers diverges, it may not be possible to determine which version of the data is authoritative, or even to guarantee the internal consistency of the data on any server.
Various approaches have been attempted to address divergence of replicated data. For example, the IETF LDUP working group has attempted to resolve this problem but the approach defined by that group involves considerable overhead, does not provide for data convergence in some cases, and may produce records that are not schema compliant.
Thus, it would be advantageous to provide an efficient technique for resolving a replication conflict in a multi-mastered data processing system. It would be further advantageous to provide a technique for resolving a replication conflict between multiple data masters in a data processing system while preserving data that is replaced during a replication conflict resolution operation.